<!DOCTYPE html>
To test manually, click on all the form elements (except the textbox) and the details/summary
element. The anchor shouldn't be activated (i.e. you shouldn't see any "anchor activated" messages).
<a href="javascript:anchorActivated()">
    <form action="javascript:formSubmitted()">
        <input type=text>
        <input type=submit>
        <input src="resources/abe.png" type=image>
        <button>button</button>
        <input type=reset>
        <button type=reset>button reset</button>
        <input type=checkbox>
        <input type=radio>
        <input type=file>
	</form>
    <details><summary>summary</summary>details</details>
</a>

<pre>

</pre>

<script>
if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
}

function log(message) { document.querySelector("pre").innerHTML += message + "\n"; }
function formSubmitted() { log("form submitted\n"); }
function anchorActivated() { log("anchor activated\n"); }

document.forms[0].children[0].value = "blah";

function testElement(i) {
    var element = document.forms[0].children[i];

    element.addEventListener("click", function () {
        log("Activated " + this + " type=" + this.type);
    }, false);

    if (!window.eventSender)
        return;

    if (element.type == "text") {
        log("Focusing " + element + " type=" + element.type + " and pressing enter");
        element.focus();
        eventSender.keyDown("Enter");
        return;
    }

    eventSender.mouseMoveTo(element.offsetLeft + element.clientWidth / 2, element.offsetTop + element.clientHeight / 2);
    eventSender.mouseDown();
    eventSender.mouseUp();

    if (element.type == "radio" || element.type == "checkbox")
        return;

    log("Focusing " + element + " type=" + element.type + " and pressing enter");
    element.focus();
    eventSender.keyDown("Enter");
}

function testDetails() {
    if (window.eventSender) {
        var details = document.querySelector("details");
        eventSender.mouseMoveTo(details.offsetLeft + details.clientWidth / 2, details.offsetTop + details.clientHeight / 2);
        eventSender.mouseDown();
        eventSender.mouseUp();
        log("\nThe details element was " + (details.open ? "" : "not ") + "opened");
    }

    if (window.testRunner) {
        document.querySelector("a").style.display = "none";
        testRunner.notifyDone();
    }
}

document.querySelector("input[type=image]").addEventListener("load", function() {
    i = 0;
    function test() {
        testElement(i);
        i++;
        if (i < document.forms[0].children.length)
            setTimeout(test, 0);
        else
            testDetails();
    }
    test();
});
</script>
